extends 基础弹窗类
@onready var 关闭按钮 = %"关闭按钮"
@onready var 状态集容器 = %"状态集容器"
@onready var 状态容器 = %"状态容器"

const 状态集按钮容器场景 = preload("res://按钮/状态集按钮容器.tscn")
const 角色状态容器场景 = preload("res://角色/状态条/角色状态容器.tscn")

var 当前状态集:状态集类:
	set(value):
		当前状态集=value
		显示当前状态集()

func _ready():
	关闭按钮.按钮被点击.connect(当按钮被点击)

func 当按钮被点击():
	关闭()

func 初始化(_data):
	var 状态集列表=GameCode.世界数据.状态集列表
	当前状态集=状态集列表.front()
	for 状态集 in 状态集列表:
		var 状态集按钮=状态集按钮容器场景.instantiate()
		状态集容器.add_child(状态集按钮)
		状态集按钮.状态集=状态集
		状态集按钮.选中当前状态集.connect(当选中当前状态集)
		if 状态集==当前状态集:
			状态集按钮.显示被选中()
		显示()
		
func 显示当前状态集():
	for 状态 in 状态容器.get_children():
		状态容器.remove_child(状态)
		状态.queue_free()
		
	for 状态id in 当前状态集.状态列表:
		var 状态数据=GameCode.世界数据.获取状态(状态id)
		if 状态数据!=null:
			var 状态=角色状态容器场景.instantiate()
			状态容器.add_child(状态)
			状态.状态数据=状态数据
	
func 当选中当前状态集(状态集:状态集类):
	当前状态集=状态集
